Categories

Versions

Category Parameter Macro (Custom Operators)

Synopsis

This operator can be used to define a macro which can be used by %{macro_name} in parameter values of succeeding operators of the current process. The value will be defined via a dropdown which is filled by another parameter. This is useful for process-defined custom operators.

Description

This operator can be used to define a macro which can be used in parameter values of succeeding operators of the current process. Once the macro has been defined, the value of that macro can be used as parameter values in coming operators by writing the macro name in %{macro_name} format in the parameter value where 'macro_name' is the name of the macro specified when the macro was defined. The macro name is specified by the macro parameter and the macro value can be selected from a dropdown which is filled by another parameter. The macro will be replaced in the value strings of parameters by the macro's value. This operator can also be used to re-define an existing macro.

The purpose of this operator is mainly to assist in creating process-defined custom operators. When selecting the value parameter of this operator for the custom operator, the custom operator will have a prefilled dropdown.

This operator sets the value of a macro irrespective of any ExampleSet. That is why this operator can also exist on its own i.e. without being connected to any other operator. If you want to create a single macro from properties of a given input ExampleSet, the Extract Macro operator is the right operator.

Macros

A macro can be considered as a value that can be used by all operators of the current process that come after the macro has been defined. Whenever using macros, make sure that the operators are in the correct sequence. It is compulsory that the macro should be defined before it can be used in parameter values. The macro is one of the advanced topics of RapidMiner, please study the attached Example Process to develop a better understanding of macros. The Example Processes of the Extract Macro operator are also useful for understanding the concepts related to the macros.

There are also some predefined macros:

  • %{process_name}: will be replaced by the name of the process (without path and extension)
  • %{process_file}: will be replaced by the file name of the process (with extension)
  • %{process_path}: will be replaced by the complete absolute path of the process file
  • Several other short macros also exist, e.g. %{a} for the number of times the current operator was applied.

Please note that other operators like many of the loop operators (e.g. Loop Values , Loop Attributes) also add specific macros.

During the runtime the defined macros can be observed in the macro viewer.

Differentiation

Set Macro

The Category Parameter Macro operator is like the Set Macro operator with only one difference. The Set Macro operator can be used for setting arbitrary String values while in the Category Parameter Macro one has to select one of the predefined values.

Input

  • through (Data Table)

    It is not compulsory to connect any object with this port. Any object connected at this port is delivered without any modifications to the output port. This operator can have multiple inputs. When one input is connected, another through input port becomes available which is ready to accept another input (if any). The order of inputs remains the same. The object supplied at the first through input port of this operator is available at the first through output port.

Output

  • through (Data Table)

    Objects that were given as input are passed without changing to the output through this port. It is not compulsory to attach this port to any other port, the macro value is set even if this port is left without connections. This operator can have multiple outputs. When one output is connected, another through output port becomes available which is ready to deliver another output (if any). The order of outputs remains the same. The object delivered at the first through input port of this operator is delivered at the first through output port

Parameters

  • possible_valuesThis parameter is used to specify the values in the dropdown of the value parameter. Range:
  • macroThis parameter is used to specify the name of the macro. The macro can be accessed in succeeding operators of the current process by writing the macro's name in %{macro_name} format, where 'macro_name' is the name of the macro specified in this parameter. Range:
  • valueThis parameter is used to specify the value of the macro. Select one of the possible values from the dropdown. When the macro is accessed in succeeding operators of the current process by writing the macro's name in %{macro_name} format, it is replaced by the value of the macro specified by this parameter. Range:
  • set_as_integer_macroSelect this if the macro value should be set as an integer index of the possible values, i.e. 1 if the first possible value is selected for the value parameter, 2 for the second, ... This makes it easier to use the macro as input for the Select Subprocess operator. Range:

Tutorial Processes

Introduction to the Category Parameter Macro operator

This is a very basic process that demonstrates the use of the Category Parameter Operator operator. The Category Parameter Macro operator is used first of all. One macro is defined using the macro parameter and the value dropdown. The macro is named 'decision' and the value selected is 'k-NN'. Note that the dropdown is filled by the possible values (expert) parameter.

The set as integer macro parameter is selected to transform the possible selections 'k-NN', 'Naive Bayes', 'Decision Tree' and 'nothing' into the numbers 1, 2, 3, 4. The number is stored as the value for the 'decision' macro.

The 'Golf' data set is loaded using the Retrieve operator. The Select Subprocess operator is applied on it. Double-click on the Select Subprocess operator to see the subprocesses in it. As you can see, there are four subprocesses:

Subprocess 1: The k-NN operator is applied on the input and the resulting model is passed to the output. Subprocess 2: The Naive Bayes operator is applied on the input and the resulting model is passed to the output. Subprocess 3: The Decision Tree operator is applied on the input and the resulting model is passed to the output. Subprocess 4: The input is directly connected to the output.

Only one of these subprocesses can be executed at a time. The subprocess to be executed can be controlled by the select which parameter of the Select Subprocess operator. The select which parameter is set using the 'decision' macro defined by the Category Parameter Macro operator. The select which parameter is set to '%{decision}'. When the process will be executed, '%{decision}' will be replaced with the value of the 'decision' macro i.e. '%{decision}' will be replaced by 1 which is associated with k-NN. Thus the select which parameter is set to 1, thus the first subprocess will be executed. When you run the process you will see the model created by the k-NN operator in the Results workspace. As the value of the select which parameter is provided by the macro created by the Category Parameter Macro operator, changing the value of the dropdown in the Category Parameter Macro operator will change the value of the select which parameter. To execute the second subprocess set the value parameter of the Category Parameter Macro operator to Naive Bayes and run the process again. You will see the model generated by the Naive Bayes operator in the Results Workspace.

This approach of using the Category Parameter Macro operator is very useful for creating custom operators. For creating a custom operator out of this process we would select the parameter 'value' of 'Category Parameter Macro' and call it 'decision'.